
import axios from "axios";
import { useCounterStore } from "@/stores/counter";
import { ElMessage } from "element-plus";
import router from "@/router";

// 导入状态管理（原代码中虽未直接使用，但保留避免后续依赖）
const Pin = useCounterStore();

// 定义通用拦截器逻辑（复用，避免重复代码）
const setupInterceptors = (instance: any) => {
  // 请求拦截器：添加 Token、统一配置
  instance.interceptors.request.use(
    (config: any) => {
      // 携带 Token 到请求头
      config.headers.Authorization = "Bearer " + localStorage.getItem("token");
      return config;
    },
    (error: any) => {
      console.log("请求错误：", error);
      // 处理 401 未授权（修正原代码的 stores 笔误为 status）
      if (error.response?.status === 401) {
        ElMessage.error("当前登录失效，请重新登录！");
        router.push("/");
      }
      return Promise.reject(error);
    }
  );

  // 响应拦截器：统一处理响应
  instance.interceptors.response.use(
    (response: any) => {
      // 2xx 状态码直接返回响应数据
      return response;
    },
    (error: any) => {
      // 非 2xx 状态码统一拒绝
      return Promise.reject(error);
    }
  );
};

// 融合后的核心配置：保持 Reads/Writes 名称和原有 baseURL，集成所有增强功能
const https = {
  // Reads 实例：baseURL 不变，添加超时、拦截器
  Reads: (() => {
    const instance = axios.create({
      baseURL: "http://localhost:5157/api",
      //http://49.233.132.133:8080/api
      //timeout: 10000, // 继承原 myAxios 的超时设置
    });
    setupInterceptors(instance); // 绑定通用拦截器
    return instance;
  })(),

  // Writes 实例：baseURL 不变，添加超时、拦截器
  Writes: (() => {
    const instance = axios.create({
      baseURL: "http://localhost:5214/api",
      //timeout: 10000, // 继承原 myAxios 的超时设置
    });
    
    setupInterceptors(instance); // 绑定通用拦截器
    return instance;
  })(),
};

export default https;